6. Forbidden Using function

컴파일러는 자동으로
생성자, 소멸자, 복사 생성자, 이동 생성자, 복사 대입 연산자, 이동 대입 연산자를 선언한다.
만일 특정 생성자가 선언되는 것을 막기 위해서는 이를 private에 별도로 선언을 해주어야 한다.

아래와 같이 Uncopyable 클래스를 상속해서 특정 생성자를 private 혹은 생성되지 않도록 할 수 있다.
class Uncopyable{
protected:
Uncopyable(){}
~Uncopyable(){}
private:
Uncopyable(const Uncopyalbe&);
Uncopyable& operator=(const Uncopyable&);
};
class HomeForSale: private Uncopyable{
// ...
}; // .